#coding=utf-8
import os

specail_base_path = 'D:\SVN\V15\Urban\Codes\project'
special_project_name = ''
special_plug_name = ''
path_dir = os.sys.path[0]
path_base_dir = os.path.dirname(path_dir)

class version_builder_module():

    #版本选择，标准版本为1，非标准版本为2
    def special_data_infor(self):
        global special_project_name,special_plug_name
        print  u'请输入特殊项目的项目名称，名称为你下载代码的目录名称'
        special_project_name = raw_input()
        print u'请输入需要编译的插件的名称'
        special_plug_name = raw_input()
    #进行深svn更新处理,并复制文件
    def special_data_deal(self):
        #拼接特殊目录的url，并进行更新
        special_path = specail_base_path + '\\' + special_project_name + '\\plugin'
        special_plug_path = specail_base_path + '\\' + special_project_name + '\\plugin\\' + special_plug_name
        special_svn_update_command = 'TortoiseProc.exe /command:update /path:'+ '\"'+special_path+'\"' +' /closeonend:1'
        print special_svn_update_command
        os.system(special_svn_update_command)
        #拼接需要进行编译目录的svn地址
        path_base_dir_plug = path_base_dir + '\\plugin\\' + special_plug_name
        base_plug_update_command = 'TortoiseProc.exe /command:update /path:'+ '\"'+path_base_dir_plug+'\"' +' /closeonend:1'
        print base_plug_update_command
        os.system(base_plug_update_command)
        #进行文件复制
        copy_file_command = 'xcopy '+special_plug_path + '\*.* ' + path_base_dir_plug +'  /E /Y'
        print copy_file_command
        os.system(copy_file_command)
        #进行编译
        build_command = 'call ant -f ..\plugin\\' + special_plug_name + '\\build.xml build'
        os.system(build_command)
        #删除特殊文件，并还原标准版本的内容
        delete_command = 'del ' + path_base_dir_plug + ' /S /Q'
        print u'进行特殊文件删除操作，删除命令:'+ delete_command
        os.system(delete_command)
        #更新主版本文件到最新代码
        print u'更新主版本文件到最新代码'
        os.system(base_plug_update_command)
        print u'更新文件地址：'+ base_plug_update_command
        print u'已完成打包插件：'+ special_plug_name
        print u'标准版本代码已还原'


if __name__ == '__main__':
    version_builder_module_instances = version_builder_module()
    print  u'请选择需要编译的版本类型，标准版本为1，非标准版本为2'
    version_type = raw_input()
    if version_type =='1':
        path_dir_main = os.sys.path[0]
        buil_basic_command_main = path_dir_main + '\\build.bat'
        print path_dir_main
        print buil_basic_command_main
        os.system(buil_basic_command_main)
    elif version_type =='2':
        for i in range(10):
            version_builder_module_instances.special_data_infor()
            version_builder_module_instances.special_data_deal()
            print  u'是否继续编译其他的项目插件，继续0，退出1'
            version_type = raw_input()
            if version_type =='1':
                break
            else:
                continue
    else:
        print u'退出了1。。。。。'
        exit()


